//package com.gams.serialport;
//
//import com.gams.config.ConfigConstant;
//import com.gams.serialport.utils.ByteUtils;
//import com.gams.websocket.client.WebsocketClient;
//import gnu.io.CommPortIdentifier;
//import gnu.io.SerialPort;
//import lombok.extern.log4j.Log4j;
//import org.springframework.beans.factory.InitializingBean;
//import org.springframework.stereotype.Component;
//
//import java.util.Enumeration;
//
///**
// * 串口初始化
// */
//@Component
//@Log4j
//public class SerialPortInit implements InitializingBean
//{
//
//    // 串口对象
//    private SerialPort serialPort;
//
//    @Override
//    public void afterPropertiesSet() throws Exception
//    {
//        Enumeration<CommPortIdentifier> em = CommPortIdentifier.getPortIdentifiers();
//        while (em.hasMoreElements())
//        {
//            String name = em.nextElement().getName();
//            log.info("发现串口：" + name);
//        }
//
//        // 获取串口名称
//        // 获取波特率，默认为9600
//        String portName = "COM1";
//        serialPort = SerialPortManager.openPort(portName, 9600);
//        log.info("开始监听串口：" + portName);
//
//
//        // 添加串口监听
//        SerialPortManager.addListener(serialPort, this::msgHandler);
//    }
//
//    private void msgHandler()
//    {
//        if (serialPort == null)
//        {
//            log.info("串口对象为空，监听失败！");
//            return;
//        }
//
//        byte[] bytes = SerialPortManager.readFromPort(serialPort);
//        String msg = ByteUtils.byteArrayToHexString(bytes);
//        log.info("msg = " + msg);
//
//        //同步即时返回给设备
//        SerialPortManager.sendToPort(serialPort, ByteUtils.hexStr2Byte(msg));
//
//        //发送到服务器
//        WebsocketClient.client.send("{\"d\":\"" + ConfigConstant.deviceId + "\",\"c\":\"" + 4 + "\",\"m\":\"" + msg + "\"}");
//    }
//}
